<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    const a = [2, 3, 5, 7, 2, 54, [12, 432,['123','asd','be'], 12], 87, 43]
    // const b = a.reduce((i,j,a)=>{
    //   i[a] = j*j
    //   return i
    // },[])
    //

    // 计算元素出现多少次
    // const b = a.reduce((pre, cur) => {
    //   if (cur in pre) {
    //     pre[cur]++
    //   } else {
    //     pre[cur] = 1
    //   }
    //   return pre
    // }, {})

    // 数组去重
    // const b = a.reduce((i,j)=>{
    //   if(j in i){
    //     return i
    //   }else{
    //     i.push(j)
    //   }
    //   return i
    // },[])

    // 2转1

    // const b = a.reduce((a,b)=>{
    //   return a.concat(b)
    // },[])

    // 多维转一维
      const DReduc = function(arr){
        return arr.reduce((attr,v)=>attr.concat(Array.isArray(v)?DReduc(v):v),[])
      }
    console.log(DReduc(a))
  </script>
</body>

</html>